package testpark;

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import mat.i2c.master.*;
import rpc.client.*;

public class TestAccesParking extends JPanel
{
    private TestRawPorts testElements;
    private MasterBusI2c masterBusI2c;
    //private StubAccesParking stubAccesParking;
    private Vector allAccesParking = new Vector();

    private JPanel jPanelChoix = new JPanel();
    private JTextField textUrlSuperviseur = new JTextField();

    private JComboBox jComboBoxAccesParking = new JComboBox();
    private JLabel jLabel2 = new JLabel();
    private JLabel jLabel3 = new JLabel();

    private JPanel testPorts = new TestRawPorts();
    private JToggleButton jToggleButton1 = new JToggleButton();

    //Construire le cadre
    public TestAccesParking()
    {
	masterBusI2c = MasterBusI2c.getInstance();
	//stubAccesParking = new StubAccesParking();
	//masterBusI2c.setBusI2cConnexion(stubAccesParking);
	try
	{
	    jbInit();
	}
	catch(Exception e) {e.printStackTrace();}
    }

    //Initialiser le composant
    private void jbInit() throws Exception
    {
	//setIconImage(Toolkit.getDefaultToolkit().createImage(Cadre1.class.getResource("[Votre icône]")));
	this.setBackground(Color.gray);
	this.setMaximumSize(new Dimension(478, 285));
	this.setMinimumSize(new Dimension(478, 285));
	this.setPreferredSize(new Dimension(350, 280));
	this.setSize(new Dimension(350, 280));
	this.setLayout(null);
	jPanelChoix.setBorder(BorderFactory.createEtchedBorder());
	jPanelChoix.setBounds(new Rectangle(9, 169, 332, 101));
	jPanelChoix.setLayout(null);
	textUrlSuperviseur.setBounds(new Rectangle(118, 8, 205, 21));
	textUrlSuperviseur.addActionListener(new java.awt.event.ActionListener() {
	    public void actionPerformed(ActionEvent e) {
		textUrlSuperviseur_actionPerformed(e);
	    }
	});


	jComboBoxAccesParking.setBounds(new Rectangle(119, 35, 205, 21));

	jComboBoxAccesParking.addActionListener(new java.awt.event.ActionListener() {
	    public void actionPerformed(ActionEvent e) {
		jComboBoxAccesParking_actionPerformed(e);
	    }
	});
	jLabel2.setText("URL Superviseur");
	jLabel2.setBounds(new Rectangle(9, 11, 113, 17));
	jLabel3.setText("URL Acces Parking");
	jLabel3.setBounds(new Rectangle(8, 37, 110, 17));

	testPorts.setBorder(BorderFactory.createEtchedBorder());
	testPorts.setBounds(new Rectangle(9, 9, 332, 152));
	jToggleButton1.setBackground(new Color(0, 125, 0));
	jToggleButton1.setForeground(Color.white);
	jToggleButton1.setText("Connexion");
	jToggleButton1.setBounds(new Rectangle(120, 66, 94, 25));
	jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
	    public void actionPerformed(ActionEvent e) {
		jToggleButton1_actionPerformed(e);
	    }
	});
	jPanelChoix.add(textUrlSuperviseur, null);
	jPanelChoix.add(jLabel2, null);
	jPanelChoix.add(jComboBoxAccesParking, null);
	jPanelChoix.add(jLabel3, null);
	jPanelChoix.add(jToggleButton1, null);

	this.add(testPorts, null);
	this.add(jPanelChoix, null);
    }


    public void initUrls(boolean isStandalone, String urlSuperviseur)
    {
	textUrlSuperviseur.setEditable(isStandalone);
	initUrls(urlSuperviseur);
    }

    public boolean setTest(boolean on)
    {
	boolean result = masterBusI2c.setTest(on);
	jComboBoxAccesParking.setEnabled(!on);
	return result;
    }

    private void initUrls(String urlSuperviseur)
    {
	textUrlSuperviseur.setText(urlSuperviseur);
	masterBusI2c.setURL(urlSuperviseur);
	if (updateListeUrl())
	{
	    textUrlSuperviseur.setForeground(Color.black);
	}
	else
	{
	    textUrlSuperviseur.setForeground(Color.red);
	}
    }

    //**************************************************************************

    private void addUrlAcces(String url)
    {
	jComboBoxAccesParking.addItem(url);
	//System.out.println(url);
    }

    private void removeAllAcces()
    {
	jComboBoxAccesParking.removeAllItems();
    }

    private boolean updateListeUrl()
    {
	boolean result = false;
	allAccesParking = masterBusI2c.getAllUrlAcces();
	String url;
	removeAllAcces();
	if (allAccesParking != null)
	{
	    int nbreBornes = allAccesParking.size();
	    for (int i=0; i < nbreBornes; i++)
	    {
		Vector b = (Vector)allAccesParking.elementAt(i);
		addUrlAcces((String)b.elementAt(2));
	    }
	    result = true;
	}
	return result;

	/*
	for (Enumeration e = AllAccesParking.elements() ; e.hasMoreElements() ;)
	{
	   url = e.nextElement().toString();
	   addUrlAcces(url);
	}
	*/
    }

    //**************************************************************************

    void textUrlSuperviseur_actionPerformed(ActionEvent e)
    {
	System.out.println("init url superviseur");
	initUrls(textUrlSuperviseur.getText());
    }

    void jComboBoxAccesParking_actionPerformed(ActionEvent e)
    {
	System.out.println("init Acces   ");// + e.getSource().toString());
    }

    void jToggleButton1_actionPerformed(ActionEvent e)
    {
	String url = (String)jComboBoxAccesParking.getSelectedItem();
	if (url != null)
	{
	    masterBusI2c.setUrlAcces(url);
	    if (setTest(jToggleButton1.isSelected()))
	    {

	    }
	}
    }

    //**************************************************************************

}